package net.dfx.iot_download_tool.conf;

import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import com.alibaba.fastjson2.JSON;

import net.dfx.iot_download_tool.vo.ConfVO;

public class ReadConfFromDisk {
	static Logger logger = LogManager.getLogger(ReadConfFromDisk.class);
	/**
	 * 从磁盘或jar包中读取conf.json配置文件，然后解析成为配置对象
	 * @return {@link ConfVO} 配置类对象
	 */
	public ConfVO getConf() {
		ConfVO resultVO = null;
		// 1. 构建配置文件路径（JAR所在目录 + conf.json）
		String confPath = System.getProperty("user.dir") + File.separator + "conf.json";
		File confFile = new File(confPath);
		// 2. 检查文件是否存在，如果不存在则读取项目中的json文件
		if (!confFile.exists()) {
			confFile = new File("conf.json");
			logger.error("&#10060; 配置文件未找到！将使用默认配置", confPath);
        }
		try {
			Path ap = confFile.toPath();
			String jsonStr = new String(Files.readAllBytes(ap), StandardCharsets.UTF_8);
			resultVO = JSON.parseObject(jsonStr, ConfVO.class);
		} catch (IOException e) {
			logger.error("读取配置失败", e);
		}
		return resultVO;
	}
}
